I'm a professional Android engineer, and as for me: I learned Kotlin and use it at work every day, and so far I like it a lot. I also learned a little bit of iOS development with Swift. I also experimented with Flutter developing non-trivial "Hello world" apps, and I feel that it reduces a lot of friction that a lot of native mobile developers encounter.
What's your favorite tech in 2018?
I discovered that git had bash installed quite early on, so my initial automation and reporting was based on UNIX pipelines. As the data volumes became bigger and the customer requirements became more demanding, I eventually bit the bullet and started learning perl one-liners to do some gymnastics that just weren't possible or practical with just bash (first big win was adding the MD5 of the line so that I could dedupe the obfuscated data).
This lead to eventually writing full scripts in perl and now I have basically all of my reporting automated, even able to take up some 'value add' reporting that I didn't think was going to be possible.
So yeah, not a new technology but I'm now a perl convert and will almost certainly use it in the future if I'm faced with a similar situation.
In 2018 I went from "zero to sixty", so to speak. At the beginning of the year I knew nothing about ML, and my math skills had gotten so rusty I couldn't even remember how to do simple derivatives or multiply two matrices.
In the first half of 2018 I relearned the college math that I had forgotten by working through MIT OCW's Linear Algebra, Calculus, and Probability courses.
In the Fall, I enrolled in Carnegie Mellon's 10-601 course, graduate "Introduction to Machine Learning". It was hard, it was a ton of work, but I did well and it was completely worth it as I now have a solid understanding of the basics of the field and can continue studying this upcoming year and into the future.
I've worked full time remote in mobile and machine learning the last 3 years, but this year is special. This year has required me to set my own motivations and goals aside to really be there for my 18 months old daughter, and for my wife. At first I tried to resist and focus on both my family and my career, but I found it hard to be my best self for them.
I took a step back from the stress and greed. I learned that I need to keep my career out of my head when I'm caring for my daughter. I'm more motivated than ever to do some cool projects in 2019. And I've learned that I need to maintain a mental balance between work/passion/me and my family.
Towards new beginnings, and growing as a person.. :)
I've been working full time with Rust this year for web development using postgres. The language and ecosystem have largely been sufficient for creating a robust platform. I have been working with the latest version of stable Rust all year and have never experienced breaking changes. Working with futures was unnecessarily difficult. Async/await is releasing next year, hopefully in Q1. This will simplify future asyncio development and make it much more legible, but regretfully trivializes hard work of the past. Aside from asyncio, though, my work doesn't seem vulnerable to future language improvements.
I strongly recommend anyone who is waiting for the right time to jump in, to not hesitate any further. By the time you have a handle on the language, the new and improved asyncio will be at your disposal in the stable version of the compiler.
[1] For one example, https://dockyard.com/blog/2018/12/12/phoenix-liveview-intera...
Had to start over at the bottom after alcohol addiction destroyed me.
Landed a job working with WordPress and started having quite a bit of with it. Naturally I just HAD to start tinkering and learned PHP to write plugins and manipulate the hell out of it.
PHP isn't all that bad and is actually pretty easy to pick up. My only gripe with it is that quite a bit of the libraries aren't on par with other languages I've used. For instance, PDF generation libraries aren't nearly as good as Ruby, .Net, heck even ColdFusion is better.
Great thing about Wordpress is that thr plugin eco system makes stitching websites together a breeze. There is a plugin for almost anything.
I learnt writing good abstractions, organising code, the value of commenting the WHYs instead of the WHATs. I learnt about the amazing power of Redis wire protocol for mass insertions (reducing a 6 hour data import job to under 10 minutes using nothing but a CSV file and 4 lines of sed).
I also learnt a lot about debugging systems. Trying to find the root cause, fixing it and creating processes to prevent it from repeating.
I also got to work on a few hacky one-off solutions for scaling a legacy PHP monolith by redirecting all Memcache calls to a PHP class file which is basically a dump of all the Memcache data. I was overjoyed once I saw our legacy stack able to sustain over 6k orders per minute whereas it crumbled at around 1200 orders per minute earlier.
I also got to debug issues arising due to saturated network switches across two floors in our colocation DC.
All in all a great year.
I also saw how it feels to be laid off due to restructuring after a merger (with Walmart) after having worked tirelessly for the company and learnt how important it is to have a support system. I'm glad my amazing peers could arrange over 20 interviews for me within two weeks and I was back on a new job. I was also glad for the amazing severance pay that the organisation gave me.
I am glad for my first job, my first professional circle and all the learning that it gave me.
Taking a break from embedded for a bit, and teaching myself Rust. Working on a queue server at the moment!
[1] LED blinker: https://www.instagram.com/p/BaND2tQlvlB/
[2] LED desk clock ("picoclock"): https://www.instagram.com/p/Blf_Fw1gBAO/
[3] USB keyboard ("KeeBee"): https://photos.app.goo.gl/zKgCkudf97FjraJp7
- Databases - I'm self taught so I never really learned about basic structures (b-trees, etc) and I've always been interested in how databases really work (e.g. why relation/non-relational have x limits) so I started I started learning about them. In particular I've been watching these lectures https://www.youtube.com/playlist?list=PLSE8ODhjZXjbisIGOepfn...
- 3D Printers/Printing - Have been saving up to build one for a while. Initially I was just going to buy a kit, but the quality/cost ratio for the kits where I live are bad. So I looked at existing solutions, but I wanted to avoid having to 3d print parts, plus I had a few other limitations, so I have ended up designing my own. Am learning a lot. Has also got me interested in fooling around with electronics more. I've always been interested but since I didn't really have any real tangible projects to work on and I did not even know what could be done, I never got much farther then fixing a few broken electronics.
After that little project, I got started on an api service in Crystal. Crystal was interesting to try out, but I decided to switch to Rust after a few weeks since the ecosystem/community is much larger. I first chose to use the Rocket framework [0] but switched to actix-web [1] after a few weeks so I didn't have to use nightly anymore. So far actix-web has been great, but I'll be keeping my eye on Rocket going stable hopefully sometime in 2019, and also another library called warp [2].
I've also got another wasm project in the works... hoping to finish that off soon and publish sometime next month.
[0]: https://github.com/SergioBenitez/Rocket
Rust: While I'd dabbled in C++ before, it was mostly just a pain, while I found Rust to be a nicer way to work on lower level projects. Ported a game side project I've been working on from Python + Kivy to Rust + Piston, and came out with a nice performance boost.
Mypy + SQLAlchemy: So while I have moved some projects from Python to Rust, others are still Python based and so I took the time to actually learn two of the libraries I've used at a surface level.
SQL: I mean, technically I've been using it for 10 years, but took the time to actually expand my knowledge from basic CRUD + table definitions. The one problem: Basically none of the nice stuff I learned works on the MySQL 5.7 we use in work :(
Docker: Another one of those things I'd been using but not really understanding, this is the most recent one where in the last month I've been working on a dev image to simplify running a few of our services in work, plus also redid my personal VPS to a dockerised setup for my various side projects so now it's way more reproducible than four years of ssh+vim methods of installation/configuration.
Finally moved away from Wordpress as a back-end, which I pushed to the limit.
Learned Laravel and greatly improved my skills in vanilla PHP.
Moved from jQuery to Vue.js - it's now my default front-end framework.
Started using CLI and Git regularly.
Learned PWA, service workers, serverless, Web3, some Solidity, more MySQL, server admin, scaling.
Throughout 2018 I was coding all the time on my own, executing my personal projects. It was a great learning experience, and now I finally became a good and productive coder.
This is an achievement, because my first speciality is graphic design and I specialized in it for many years. Now I'm also a competent coder. When I combine design with code, possibilities are endless.
Then one of our team wrote a service in kotlin, and we never looked back, I had my type inference, extension methods & null safety back, along with really strong immutability features, pure functions to boot.
It is such a pleasure to work with, it's in my opinion the pinnacle of traditional statically typed OO language (C#, java etc)
EDIT: now, all new services in our company are written in kotlin, it got grass roots adoption in every team (bar one which came from a much more old-school java background)
Another technology was optics and specifically fiber optics. I went into the field with knowledge of microwave engineering and I am surprised by how similar it is. I thought it would be a completely foreign, but the high level concepts are actually relatable to microwave tech.
Also Docker, which I'm still not sure how I feel about. Docker somehow feels like an admission of failure of our industry to manage, install, and isolate dependencies, so we create pseudomachines to work around the problem. Better than VMs, I guess.
I had a use case that I wanted solved for automatically tracking how much crypto I own on exchanges that hasn't been done by any other apps/websites. Used it as a learning/side project, and got the mobile apps on both app stores (they're not as picky as you would think, especially the google store). User base of 1 (me). Web app/api in rails. I used create-react-native-app (Expo) and have not ejected yet. It's an awesome developer experience live reloading your device wirelessly. The biggest difference between react and react native is what lives in your render function: instead of <divs> you have <Text>.
2019 will be elixir+phoenix (finally). I plan on creating a self hosted RSS reader with the new phoenix live reload module that should be pretty slick
I've also dabbled in saw sharpening for woodworking. I got started with disposable Japanese saws that can't be sharpened but want to move to Western saws which need sharpening. I was successful with rip saws but all my attempts with cross cut saws ended in failure. I'm hoping to find some time to try again, filing back the teeth and filing them again.
http://www.smashcompany.com/technology/docker-is-a-dangerous...
I think there are interesting things happening in the compiler space, so I hope to learn more about those.
Coincidentally, I find Rust my favorite "tech" in 2018 because of the compiler and its various targets (like Nvidia cards).
I've also played with Go, although while I like some of it I am still not convinced.
Another thing I have started using and really like is DDD and the onion architecture pattern. Its produced some of the nicest code I have seen and has helped make the code base super maintainable, adaptable and clean. Very cool.
AWS - At the beginning of the year I knew nothing about AWS. I thought it was just a way to host VMs. Since then I’ve done projects involving networking, Devops, and development and I have four certifications. My company paid for them and it forced me to learn AWS inside and out except for the Big Data, IOT, and mobile.
Linux - I’ve been developing on and deploying to Windows servers for 20 years. But the Windows tax becomes real once you start using AWS. I’ve learned just enough to be almost competent.
This year I also discovered R. I had to do a Python to R translation, so I got fairly familiar with R.
I also discovered a few languages, but I haven't started learning them yet: red-lang and Pharo.
1. Docker. I resisted learning it for the longest time because of the stories about its unreliability in production (just do a hacker news search) and the constantly shifting APIs. But once I built and gave collaborators a few containers I realized it is a very complete toolkit for getting code to run reliably anywhere. Since research code is often a mishmash of Octave, Python, Pearl, Julia, and crufty C++, and anywhere often includes ancient government laptops, running anywhere is a real pain point. Docker’s complete configuration language, command line tools, and collection of minimal base images together make it feel like a big step forward compared to VMs for my use cases. And it will probably buy my team another 10 years of using scruffy code bases without doing a clean modern rewrite (for better or for worse).
2. Scikit-learn. Although there haven’t been any machine learning breakthroughs in my field (power systems), it was time for me to learn what all this ML hullabaloo is about. I found it really easy to use scikit-learn to build some simple models for load forecasting, and I appreciate the library’s clean and pythonic APIs. It’s also nice how complete the library is—if there’s a model you’ve heard about it’ll probably be in there and well-documented.
Things I tried and won’t end up using:
1. VSCode. It’s great, but it wasn’t a big enough improvement over Sublime for me to make the switch. I also am more of a minimalist, and VSCode wants you to use a generous set of panes/terminals/wizards.
2. Serverless (AWS Lambda, zeit.co). One of these days I suspect the interface to a cluster will be as clean as the Unix interface to the single machine, but for scientific computing I’m finding it easier to stick with older methods (single machines, occassionally a cluster built by hand).
I decided to pick up Python and learned some Flask & Django while I was at it. Really liking it. I also took some machine learning courses and wrote an image recognition app w Pytorch. I started & finished two Udacity nanodegrees to help keep me on task with learning these tools.
I worked for a while on a cloud infrastructure team and enjoyed learning a decent bit of Go, AWS & Terraform. Also touched on Docker, K8s & that whole ridiculous devops ecosystem.
Lastly, for the first time in my career, I worked solely in Linux (used to work solely in Windows). Never going back to Windows!
I started 3d printing a ring with an embedded (existing) chip for 2FA.
Next I played with Rpi, usual tutorials with buttons + led. I picked up Android Things, and started building a led matrix controller.
However Android Things was too slow to directly control the matrix, thus I started playing with a STM micro controller (blue pill).
In parallel, I started working on Solo keys (https://solokeys.com), where I didn't build the hardware myself, but all the experience I gain was very helpful to keep up.
Next year will likely be more Rust and porting Solo to different platform, for example Arduino. Maybe I'll try to make my first schematic and manufacture it, we'll see how it goes (I have access to a good teacher :).
- react, redux, typescript, canvas, webgl, webanimations, audio api, nodejs, firebase, SQL server, postgresql, scraping, mongodb, rails, nextjs, vuejs, and a few other js in libraries. Custom WordPress theme development and basic php. Design tools like figma and affinity designer.
React took me a few months to get comfortable with though, mostly as I was learning on my own.
I learned how to play musical instruments and did a few talks at my local meetups, and participated in a few hackathons. I got better at delegating tasks with better project requirements
I want to learn machine learning, text classification and image processing next year though, along with some core CS classes I want to know about. And more math
For 2019 since I'll be graduating I think I'll spend more time on mathematics, reinforcement Learning and OCaml which I was postponing this whole year. And of course Rust.
2. Incremental computation (Adapton)[1][2]. Very time and resource-saving technology in some applications.
* Unscented Kalman Filters - These are really cool, wow. I'm pretty sure the unscented transform has a lot more potential than just being used with Kalman filters too, someone should investigate that. Also this year I learned that the truncated Kalman Filters I've been developing for the past few years are a lot more useful and powerful than I realized, and I'm interested in exploring more general ways to use those. (Unfortunately Google won't let me publish these though.)
* Vertx server - Web server frameworks generally manage to make me mad, and this is the first one I was actually happy enough that I'll keep using it. Has a few rough edges though - I wrote a multiple database query method by hand, and Vertx's JsonObject type makes it really easy to accidentally create an infinite loop.
* Elastic beanstalk - Is actually kind of terrible? And yet it's so much closer to what I actually want (run my jar on X machines, reboot as needed, never think about it again) than what I've used before (actual servers, ec2, app engine) that I'm also sticking with this.
* Postgres - I mean I've technically used postgres before but I wrote a reddit clone from scratch this year so I know a lot more now. Hey it's as good as everyone says, go figure. Also pgadmin is so bad, wow.
* Peg.js - Parsers have always been intimidating to me and playing with this really cut down the intimidation factor. I'll write my own parsers for anything important, but still use this for prototyping grammars. The idea that you can have a dirty prototype of a grammar is mind-blowing to me though.
Haskell and Category Theory, but now I'm impractical trying to apply the concepts in practical scenarios and stuck with paralysis by analysis in every aspect of developing software even in some aspect of my life, category theory just screwed my brain and i cant go back. so simple and so complex, just dots and arrows! I guess its too theoretical.
For food: Java puts the food in my mouth but i hate it, just because i needed ,learned Functional Java(streams) / Camel.
Polish my micro-services "architecture skills" for shitty banks/financial institutions (oracle/red hat/IBM bitches) stuck in the 2000s.
Angular/Typescript, Vue and extending my web development knowledge in general also for my job (which i also hate)
A little bit of Docker and K8s.
Ill keep my eyes on functional programming and functional design/architecture for large systems. Also: any book recommendations on the subject?
I wrote this in hurry, sorry for my English.
[1] Such a benefit doesn't matter in a containerized world.
Our 2019 will be spent on building our AWS and Azure skills along with container setups, as we look to move further away from our .NET and IIS heavy setup. With an increased focus on getting better with Python and Vue, possibly moving our JavaScript to Typescript.
I don't have anything negative to say about .NET, in case anyone was wondering. I think .NET core and Blazor.NET are especially interesting. We've just had so much more fun with Python and that's frankly really motivational. We're also using more and more Python when we do data-driven development, incorporate GIS stuff or do various forms of scripting, so it sort of makes sense to consolidate.
Beyond that I did more messing about with AWS, and found that while I knew a fair bit theres a lot of devil in the details ..
Regardless this was a good year, the previous year I'd started working with ESP8266 & Arduino devices. So it was nice to get back into pure-software development, instead of hardware. (Hardware is rewarding, challenging, and a lot of fun. But I found waiting weeks/months for parts to arrive a bit of a pain.)
Favorite tech and the one I'm most anticipatory about in 2019 is ARKit and how easy making AR apps has/is going to become. If you dive into it now it's clear that Apple has some big plans for AR and eventually a new computing device.
- Clojure
- Typescript
- Aws Lambdas
- Serverless
- Terraform
- Cloudformation
- Docker
- AWS Ecs with Fargate
- Kafka
All this mainly because I managed to land a job at a big company that encourages knowledge sharing across teams. So much better to have a community of other engineers you can rely on.
I really like Zig as a language and started doing the Advent of Code challenges in it but had to give up as Christmas organisation took over. If you’re looking for a C replacement with a simple yet modern feature set it’s a pretty nice language. I found it pretty easy to be productive right away.
https://github.com/meheleventyone/aoc-2018-zig
I also dabbled a bit with TypeScript for the teensy amount of glue I wrote to get my WebAssembly modules doing stuff.
At the beginning, I was using dokku to create small PaaS that would handle my projects, and sometimes mid-year, I dug deeper into terraform, docker and CI/CD pipeline from GitLab, so I was really happy with how my projects were deployed and integrated.
Other than this, I improved my Python skills with more attention devoted to testing, efficiency and modularising my code. I also made an app using ionic/cordova, checked out a bit of Swift, and worked on some basic ML projects, so overall it has been a fun year.
I tried to dig deeper into Go and Vue, but I either didn't have time or motivation.
* Python * Common Lisp
For Work:
* Pandas (Learning Python resulted in me being asked to help our 'data team' get started with Pandas)
* Go (I moved to that Team)
* Protobuf (google protocol buffers)
I've played around with some other technologies along the way as I enjoy learning various languages. But I wouldn't say I really become good with them, some other's that I've played with this year:
* OpenDylan
* Erlang
* Django
EDIT: Formatting
Clojure. Not something I find myself using day-to-day but I think it has some cool qualities (seamless metaprogramming). I found the APIs a little frustrating to wrap my head around
Kinesis, MongoDB, Hadoop. Evaluated all of these when designing an event ingestion/stats processing system
Concourse. Lots of Linux stuff. Lots more Bash. Some game programming libraries for giggles
## DevOps
* AWS Cloudflare and Lambda (with Go)
* Kubernetes
* Ansible and Terraform
* deploys from gitlab/bitbucket pipelines
* production/dev setup with Docker and docker-compose
## Patterns
CQRS and Event Sourcing
I’m going to continue on these paths during 2019, maybe with some new stuff as well.
* Finally understood the concept of lifetime in Rust.
* Learned Go programming language. I loved it, but wished it had generics (waiting for Go 2).
* Golang - I built a simple key-value store based on Raft consensus protocol.
* Golang - I also built a distributed hash table with Kademlia.
* Did some lock-free programming in Golang to implement Lamport timestamps.
* Learned Docker and Kubernetes. I also dived into concepts that are behind Docker like namespaces, cgroups and securing them.
* Learned to use Terraform and AWS.
* Learned some Elixir - haven't done anything serious yet.
* Learned Ruby, Python and some shell scripting - I still look up stackoverflow a lot here. I use them to automate some boring stuffs during development. (like I needed to setup cluster configuration every time I try running the Raft based KV store).
* At work, I learned the Spring framework and a few details about its internals. I got a few questions like - is type erasure a lie? it is just that getting generic types is not so straightforward!
* Played with MongoDB and Node.js - implemented a simple expense tracker backend.
After all of this, I decided I'm a bit overstretched and decided to stick with building cloud/distributed systems mostly with Golang and learn Docker, K8S.
2) Microservices and Serverless - Did a lot of research on these two topic in the last quarter of the year, trying to take out the main use cases and advantages for both super hyped technologies. Ended up applying Serverless at my work for now, which was the super simple to integrate with our architecture (monolithic) and was also appropriate for our organization's size (small).
It’s a lot once I actually write it down.
Favorite: The pragmatic and approachable simplicity of OCaml/ReasonML (bonus points for Scala/Akka for very different reasons).
Django Chose django over nodejs for a project which had multi users with roles, views, access control as well as a rest API for mobile apps. I liked the same defaults and found that if I spend enough time learning the APIs, a lot of things have oob solutions.
Switching gears towards the end of the year, I had to look at a good option for building a desktop GUI app which will handle and display a lot of data. It's more of a development/ data analysis tool. Ended up selecting C++ and Dear ImGui for the job. A steep learning curve for me but enjoying it so far.
Ansible -- I converted my dotfiles install bash script to use Ansible and to also install all my terminal dependencies. Then I started expanding on it to include my entire development box and to provision a bunch of vagrant boxes of different Linux distros so I could test the waters with something other than Ubuntu.
Docker -- Work's been using this now for over a year, and I was a bit of a hold out on it since Docker just seemed like another layer that Ansible + Vagrant was doing a fine job of handling. Once I really dug into how the configurations worked together and set up some of my side projects to use it, it's usefulness started to come together for me.
Otherwise, I keep trying to learn Rust but don't have any projects in mind that would fit with it. I also keep playing with React on the side but haven't gotten very far in my understanding of that ecosystem.
I also continued to deepen my understanding of databases and distributed systems. My favourite read this year was Designing Data-Intensive Applications which made me more familiar with the pros and cons of the various datastores and provided a better sense of the tradeoffs that each makes. It also gave me an appreciation for the guarantees that the battle-tested relational databases provide. One of my goals for 2019 is to improve my SQL knowledge — thus far any extra effort to understand it better has payed dividends.
as a result i became easy to use that to build a small gui app to help me solve some issues.
the key takeaway is this: i have wanted to learn more about smalltalk ever since i started learning it, and i experimented with a few apps. but the effort of having to start a smalltalk environment every time i had a few minutes to dabble around just seemed like not worth the trouble. (it was like an 'out of sight, out of mind' thing, and it always seemed a bit to much to get used to how smalltalk works just for experimenting.)
but now that the environment is always running, and needs to run for that one vital application i am using, for which it is worth it to keep the smalltalk image uptodate and current, that makes it easy to spend free minutes to dabble around and try things.
Also learned the python C api so we could integrate some ML models written in pytorch into our c++ applications.
This year I learned:
- Vue.js (amazing JS framework) - F# - React/Redux - Jest - Vim (well... I should say became way more proficient) - Visual Studio which I try to avoid like the plague (I find it bulky, slow and frustrating). Thankfully a lot of their tools can be loaded through bat scripts and exe files which are independent of the IDE. That includes an excellent C# repl I can use to immediately run code as well as run C# scripts on the fly including legacy code that won't run in .NET Core. Found an ok debugger that works from outside VS but not as good as the one VS provides to be honest. - .NET core (a lot of nice things to say about this) - Azure and with a lot of mixed feelings about it.
Other things learned at work this year: Docker and Kubernetes. Not something I would have learned on my own, but in the end I'm glad I took the plunge since they're both pretty fascinating.
Outside of work: I finally got proficient with monadic parsing in Haskell. Parser combinators are simply the best parsing experience I've ever had and I really hope never to write another regex in my life.
* how CNC machines work
* microcontroller programming
* 3d printing
* electronics
And hobby-wise, I created an educational program with an entirely Kotlin stack, all the way from a Spring Boot backend to a TornadoFX desktop frontend - sharing all models with the backend and even having a local SQLite instance that mirrors the server side DB and enables distributed and delayed updates - mainly aimed at schools with zero to no Internet connectivity. It was incredibly fun and I got to submit PRs and issues to a bunch of cool projects.
It's been a fun year!
I'm not sure this counts as a "technology" per se, but I've been bitten by the rendering bug and have spent the past year rekindling my traditional artistic passion for visual realism in the context of modern computer graphics techniques and have been fortunate enough to be in a position to apply graduate school for it.
Have been a full stack dev for years and always had an itch to move towards front end. Converted .net site into angular/.net core stack in 2 months, angular has been blowing my mind. Its such a huge upgrade to entire front end framework, I absolutely love it.
I also embraced messaging for good and was shocked at how easy NServiceBus makes everything regarding AMPQ.
I continued to celebrate .NET Core advancements and use it for all my server side programming.
I also dipped my feet in Scala and really like what I found .. Q1 of 2019 will be Scala heavy at work, then back to .NET Core.
E: Forget, every single project I have is set up in Azure Devops now for build/deployment. It's amazing.
If only there could be Spring for python, because Java is very painful to program in.
* TypeScript
* Node.js
* React
* Java
* Spring Boot
* Bottom line: This is all pretty ugly and
underperforming, compared to my previous world...
And intermediately literate in: * OpenShift
* Kubernetes
* Istio
* Helm
* Ansible
* Which I all pretty much enjoyed, compared
to my previous world (MPICH and BLAS all the way).
Having said that, I'm drawn to: * Clojure
* Micronaut
* Rancher
as of now. Which are my next projects. :)Vue.js has been an absolute joy to learn and use. Great design & simple ecosystem. Perfect choice for small SPA.
While I like Python in general, on the backend side I think there are also other stacks that'd probably do the job and perhaps do it better. I chose Python since I want to also have a look at data science in the future.
ReasonML is pretty great, though I think the syntax is much noisier than it needs to be, compared to Elm and OCaml. Documentation needs to be consolidated though, and the linter picks bad defaults.
Solidity feels like a language designed like someone that never learned lessons from having tried a lot of different languages. It feels much like a leaky abstraction over the EVM. Other than when doing embedded programming, this is the only language where I had to reason about what the compiler or VM was doing.
Don't know that I found a favorite tech this year.
While learning Nodejs, realised that JS isn't the first language anyone should consider for back-end, but really amazed by things JS is capable of doing today.
Would highly recommend Elixir/ Phoenix over Rails , Elixir not only has lesser learning overhead it makes alot of things a lot easier. Concurrency and speed of server are major advantages but I like way language operates. It was also my first functional language and it changed my perspective for programming languages.
Dev: Continued working on our full stack JS (Node, React, React native, Flowtype, Jest). I am planning on moving to Typescript because of the poor developer experience of flow, but appart from that, I am loving the state of JS at the moment!
Databases: AWS Aurora with PostgreSQL and PostGIS, with Prisma to create a GraphQL API. It is amazing and feels like the future.
CI/CD: I am getting deeper in the GitLab stack to integrate all the elements above.
During the summer I also took the "CS50's Web Programming with Python and JavaScript" class on edX. It taught me about Flask and Django.
Since then I've made two apps for work:
- one is a data visualization to coordinate railway infrastructure works using Vue.js/D3.js and an API made with Flask
- the other is a standard (server-side rendered) Django app. It is a search engine for scanned PDF documents. There are also scripts to extract text from documents using OCR with ocrmypdf based on tesseract. The text is then loaded in a PostgreSQL database to make it full-text searchable. There are 30k documents and 130k pages.
Both apps are currently running on my company's internal OpenShift cluster so I also had to learn OpenShift, Docker, Kubernetes...
Since September I'm back at the university every Monday for an Executive Master in Datascience. I'm currently learning machine learning (using Python, scikit-learn, numpy/pandas, matplotlib, tensorflow etc.), graph mining and data visualization. Here is our dataviz project: https://ufo.kediss.eu based on the UFO sightings dataset on Kaggle. I'm currently studying for the exams in January.
And looking forward to migrate to Ionic 4 and make both desktop and web versions of my apps!
I wasn't able to find a great algorithm so I'd appreciate any tips people have! Open source code that I can bust open and investigate is preferred.
I ended up just banging out an algorithm from a paper that looked easy to implement within my limited time frame. The result checked the box, but was ugly.
I have been calling myself a frontend engineer for last 7 years. Not that i did not know html and css but my focus was always on javascript. This year i focused on web accessibility and that made me realise how much i didn't know about html and css. I now figure out how my component (<react_developer>) will look implemented just in html and css and then add interactivity with javascript. It feels like someone cleaned my hazy glasses. Accessibility for the win.
On the non-technical front, I learned how hard interviewing is nowadays (had been decades since I interviewed for a full time job). It's brutal.
CMake is probably the only thing I can say I really "learned" during 2018, as I spent a lot of time reworking the build system where I work to use "Modern CMake". We manage a large cross platform code base and it had been bugging me that there were platform specific projects that had to be updated every time we added code (that had poor documentation of what random settings were made in some random subdialog of visual studio). Still hard pressed to convince the team of mostly Windows developers to give up their Visual Studio projects, but hey, if you choose to use CMake you can compile it for all of our supported platforms. The multiplatform CMake implementation is now actually smaller than the original single platform one, and a heck of a lot easier to read. Although, I do understand from their perspective that a CMake generated visual studio project is pretty ugly compared to a hand crafted one.
I spent a few weeks toying with Vulkan and have wrapped my brain around how it works (as a long time OpenGL developer). Not to the point where I could write it without the reference manual, but I can reason about problems with it.
I also spent a few weeks looking into Rust. Definitely on my list of things to spend real time on in 2019. I read enough to begin to understand how the borrow checker works, so I've spent time thinking about how to solve various problems I come across using that model. It's certainly affected how I write C++, much to the annoyance of my coworkers ("why don't use just pass a bare pointer? I don't want to read all this std::unique_ptr / std::move stuff!").
- Basics of finite element analysis- that helped our team to skip a few iterations during design of vibration isolation solution.
- Refreshed my knowledge of BPMN, trying to formalize some internal processes. Work in progress, people are reluctant to changes.
- Using yocto to build firmware images for embedded Linux devices.
- Learned a lot about practical side of RF engineering- impact of plastic enclosure on antenna, how RF performance should be tested in production.
Most of my learning has been around the architecture of distributed file systems and distributed object stores. It's given me very useful perspective to have a context for comparing different solutions to each other and how they relate.
I've learned more about awk, tr, and join to aggregate or process GBs of tables structures as text.
I've also been trying emacs and evil for an integrated, programmable ecosystem with familiar ways of editing text.
I must say it's a lot to take in but these are really interesting technologies that should serve me well over the next few years, especially coming from node/JS.
For personal projects, I've learned at least a little bit about how parsers work by writing (a pretty awful) one from scratch (bitbucket.org/YellowApple/otpcl), and I'm hoping to fulfill my 2018 New Year's Resolution by adding a simple interpreter to that project (the parser tests include a half-baked prototype, but I need to flesh that out to actually track interpretation state, be able to run real Erlang functions, etc.). If all goes well I'll have something that's properly Show-HN-worthy by the 1st.
In the summer I began an interest in game development. I took the CS50G course on edX taught by Colton Ogden - I don't have enough good words to say about this amazing series of lectures! Thank you so much! Alongside various game design principles, through this I learned Lua, Love2D and a little Unity.
The tail end of the year has been a quest for knowledge with me voraciously acquiring game dev knowledge from blogs, reddit and mostly the amazing resource that is Youtube - C#, Unity, Unreal, CG/GLSL/HLSL, most recently Blender.
Shoutouts to Youtube channels The Art of Code, Makin' Stuff Look Good, Brackeys, Blackthornprod, Blender Guru and of course GDC.
There is so much to learn!
Initially, I started with ssb (secure scuttlebutt), but ultimately moved to dat/beaker.
I've been having a lot of fun with it, I love how this allows to publish side projects without needing to rent a server.
For next year, I'm interested in exploring the implications it has regarding interoperability of apps, given users host their own data and can give access to it to other apps.
After working with Scala for 7 years and Scala.js for the last 3 years, a side project led me to learn what life is like on the frontend outside of Scala.
TypeScript is an impressive language, really like union types, string literals, and to some degree structural typing. Development is fairly friction-free, and VS Code is a breath of fresh air compared to cumbersome IDE support in Scala.
As for Angular + Ionic, generally terrible, but I'm not a fan of heavy frameworks. You can create cross platform apps, yes, but performance and development speed leave something to be desired -- Scala is known to have a fairly slow compile/reload dev cycle, but Ionic + Webpack is on an entirely different level of slow.
Looking at Scala + Scala.js + Cordova + Sqlite as a possible stack for cross platform apps that use Quill[1], a type safe query DSL, on backend and frontend.
Docker (finally) in a production setting rather than just messing around a bit with it, finally taking the time to work through k8s, swarm and service fabric for differing orchestration methods on different platforms.
Graph databases, like... most of them now, I will be continuing to work and play with Dgraph, but Neo4j and all of the tinkerpop stuff is pretty great if still a little lacking in docs for some of the implementations.
Despite the bulk of my professional development being on .Net applications, this has also been the year I moved my primary workstation from Windows to Linux and I haven't looked back almost at all but I have booted my old windows machine up as a VM a few times when I ran into the occasional brick wall, but that's become a lot less frequent as I've gotten more comfortable with Fedora.
- knitr, as I got sick of LaTeX (I always ended up fiddling with the figure placement forever until it was just right). I also moved all my R work into RStudio, which is a HUGE time saver and the Projects function has saved me a few times.
- snakemake, for reproducible bioinformatics workflows, integrates nicely with HPC systems, and is very beautiful (the few times I've used it)
- I went through the first fast.ai course, and used it with some success on kaggle, but I'm far from doing 'bleeding edge' stuff I think (applied is fine though! give me a nice dataset and I should be fine). I've also read the Kaggle book (Deep Learning with Python), which contains a whole bunch of these weird useful machine learning tips that no-one really can't explain mathematically
- I've also made an effort to switch my R code to immediately use as much tidyverse as possible, which isn't always OK when using bioconductor at the same time
I have a background in data science, so have a lot of experience with Python. I’d always wanted to do more backend stuff: push my models in productions, do the ETL work myself... But quickly got frustrated with Python.
Go and Erlang have solved a lot of my pain points. Erlang is a bit of a strange beast for people who come from procedural languages, but it allowed me to build ETL pipelines that are more robust than anything I could do with Python in less than half the number of lines. Even for heavy computations, I now find myself spinning Python nodes to do the heavy lifting with Pytorch and co, and doing all the orchestration with Erlang. It also made me a way better programmer.
I use Go for computation-heavy APIs that don’t require a lot of data massaging. It’s a very efficient, weirdly comforting (!) language.
Now I think I got the bug, I really want to learn Clojure and Nim this year :)
I will say that after using spark, the big data community badly needs better distributed computing tools. It was just awful to work with. Also good luck debugging anything easily when you create stuff with the RDD apis.
I did come to like Scala, and Kafka as well, though.
* Machine Learning Algorithms from scratch (Random Forest, Gradient Boosted Trees, OLS, multi-layer perceptron). Thanks Jason Brownlee
* Spark API and Spark ML Lib API familiarity
* Still plugging away through Stanford CS229 Aiming towards a job change in mid 2019. Hopefully it works out.
I am very satisfied. I have been using GNU/Linux for years but this was a chance to formalize my knowledge and more than else, have a bullet list of things to know from start to finish.
Given that the exam is hands-on, I had to really go through all of the requirements.
The focus has been on Typescript because i needed it, and I have to say with just JS I wouldn't have been able to develop large scale apps as I'm doing.
Rust has been more curiosity driven, rather than by need as with TS. I have to say it is quite a steep learning curve for me, and I stil struggle too often to replicate something I write in JS/TS with Rust, while improving performance.
The experience had me value a lot the nature of JS (single thread with event loop), because it makes it so easy to write code that feels multi threaded but retains the smaller complexity of single threaded code. I still have to properly learn how to achieve something similar in Rust.
That said, I'm loving Rust, especially on the education aspect it's giving me a lot of insight on computer science theory.
In terms of more foundational things I tried to brush up on linear algebra. Lacking a formal/rigorous college course experience in linalg, I used LAFF from edX before MIT OCW/Prof. Strang's online lectures. I liked both. LAFF was pretty easy/fun, but ymmv, I knew matlab and python (you may see one or the other depending on what year archive you look at) and my undergrad was in a computer-unrelated engineering field (whose math curriculum focused far more on diffEQs which is why I never got deep into linalg much before)
Next year for fundamentals, I'll try to get a better base of statistics and probability. I'm quite weak in the latter.
The pairings and zero-knowledge proofs are my favorite. There will almost certainly be more golang, solidity, and machine-learning papers next year. There's a good chance there'll be some more react. There'll probably be some rust, which is what we're doing the SGX work in.
My favorite tech in 2018 has been Parcel bundler, though.
I have been wanting to build a data/science + finance project for the longest time but couldn't pull it off earlier. I finally took a break from work and learned Python + Data Science libraries (Pandas) along with a web framework called Plotly Dash that allows for pretty cool stuff, all inside Python.
I have a dirty prototype running for cryptocurrencies and have been advised to convert this to a "venture", so I am working on that now :) that has been much harder than I expected.
On the backend, got into gRPC, Websockets and Server Sent Events. Enjoying Java 11 and Go 1.11 with modules!
Bash - This is still a work in progress, but I've enjoyed the ease Bash provides for scripting, compared to doing the same thing in Node or Python.
Unix - In the last few months, I've started familiarizing myself with different commands, such as sed, grep and awk, to navigate around the command line and edit files. I'm hoping to get better in 2019.
[0] https://www.udemy.com/vuejs-2-the-complete-guide/learn/v4/co...
Also took a React course and have been building my own project with React and Redux.
Just spent this morning reading up on GraphQL... by the end of the day I expect I'll have finished reading the "Learn" pages and some documentation and have worked with it a bit.
* Worked through the Rust Book, and found that I really enjoy the language.
* Expanded my grasp of lisp (albeit emacs flavored) enough to do more than tweak my init.el. Made a toy Scrum board that reads and writes org files via Emacs web server. :)
* Dived deep into K8S using Python's API client at work and am proud of the result. Goodbye ad-hoc Docker deployment scripts!
That's about it. I'm always learning more about the tech I use on the work-a-day (Python, PHP, JS, bash, etc.) but I also like expanding my knowledge.
In 2019 I'll continue with Rust and C++, but also refresh and expand my uni experience with ML/Python.
Have worked in and around software development for about a decade now, but have never been in a primarily development-focused role, yet.
Need to learn a lot more, as it turns out!
* Golang
* React
* MySQL
* ML.Net
My job is a .Net stack so I wanted to look around, and see what else was popular. I've used the MySQL in a previous job so this was mainly to brush up on that. Noticed machine learning was trendy and ML.Net allows me to play around with it in a language I already know(C#). Golang because it seemed popular. I enjoy Golang quite a bit for microservices, but I absolutely hate setting up/playing with GOPATH. React over Vue/Angular because why not?
Next year I intend to take a more focused approach to my professional learning. Project based and time boxed(3-4 months). Topics will be: ML, Embedded, Bioinformatics, and I'm thinking a project that utilizes cloud services.
"For those interested, I have prepared a 'Technical Review' of subject areas of interest to me with an overall emphasis on natural language processing, machine learning, and graph signal processing (and a particular interest, where appropriate, on molecular genetics/genomics/biomedical subject areas). ..."
I learned the Neataptic neural network library and gained experience in text classification using an artificial neural network.
I learned the D3.js charting library.
I learned the express-session NPM package and gained the capability to implement user accounts and HTTP-based user sessions.
I learned SQLite for creating database subsystems for heavily constrained server environments such as the Orange Pi Zero single board computer.
I learned the Blender 3D modeling and animation utility and obtained the capability to create basic 3D models and animations.
I learned the Babylon.js 3D game development framework and obtained the ability to make 3D browser games.
LOTS of SQL. Writing sophisticated queries, building a mental model of what a DB will try to do, doing perf evaluation by looking at query plans, Analytic/Window functions.
DB optimizations. Especially BigQuery and Postgres.
Non-trivial Java 8.
Holidays are for Rust, advanced Streaming systems, and Docker/K8 :-)
Will also be looking to get deep into the Python AI/ML ecosystem in 2019. I'm fairly adept in Python and thankfully the ecosystem for Data Science/ML is quite mature.
To be frank I've used OCaml before and I use Haskell almost daily. So with this caveat, I'd like to say ReasonML and ReasonReact are generally easy to learn and make web apps in. The only bit of difficulty was when React wasn't enough for my use case and I had to drop down to raw DOM manipulation. That was quite a bit of trial and error and Obj.magic involved. I still don't fully understand how it maps DOM types (HTMLElement, etc) to OCaml types but I already feel productive enough that I want to use the tech again.
I've also been tinkering with C#/.net core and TypeScript at work as I try to align myself closer with the tech that the core engineering teams are using.
The other thing this year that I finally cracked was Swift. I don't know why, but until just recently I had really struggled with wrapping my head around it ¯\_(ツ)_/¯
- Dabbled a bit with Docker and Kubernetes on Azure
- I've been using VS Code more and more
- Dialogflow for connecting a chatbot to Google Assistant
- Text to Speech and Speech to Text API's like Nuance, Acapela, Google Cloud Text to Speech and the Audio Object in HTML 5
- Azure Active Directory for authentication and role based access.
- Hugo, a static site generator
- Face recognition / emotion detection using Cognitive services in Azure
- I'm moving away from Angular to Vue.js and for Proof of Concepts I mostly use Vanilla JS
- nodejs (express) coupled with ECS for deployments
- vuejs for a small project
- a tiny bit of Go
A few weeks ago, started a new project with Flutter and I have to say I am pretty convinced so far: - great tooling
- easy to setup
- close enough to react when it comes to principles
- but a bit too verbose for my taste.
I also have my Arduino starter kit unopened on my desk.Clojure was a language that I tried a few years back and never really got into - parentheses everywhere, who needs those?
But its syntax hides its functional elegance and is a really pleasant language to work with - even Java becomes bearable!
As for Python, I never had the chance to with with. Built a video stream server from Pi Camera using flask which is nice , small and simple - a lot simpler than I thought.
Also at work had to apply Python for a project too and easy the right tool for the job when dealing with file system entries that is on the gigabytes.
I'm looking forward to applying them more in 2019.
The only weird thing at first is Dart, but it is so close to any common language that it never was a problem for me. And it is so good to use a language with both AOT compilation and a quick reload mechanism!
I'm the past I've used angular and react, but when I was tasked with designing a project manager for artists I decided to try out Vue.
I was originally interested because it seemed easy to include in an existing PHP project without needing to pull in webpacker or extra tooling, while still giving me the best parts of React.
It was. I quickly fell in love with the syntax and was happy to see that the ecosystem was vibrant enough that I could find a good Vue drag and drop library (built on sortable.js) on github.
(Here's a demo of using code.org to have two dev boards signal each other to take turns cycling through their LEDs, complete with running into demo gremlins a few times - https://www.youtube.com/watch?v=SKFb9F4Xxb8 )
I needed them for my senior project[0] in college where I tried to make a lab assistant with the Google Home that would answer questions about the cafeteria menu and course information.
I learned a lot about webscraping which I had to do since I had no API to work with. I really wish I was more diligent in finishing it since prior really liked my demo.
Basically with android background,
So, 1. Switched to ethical hacking for mobile and web. Learning Kali tools and more about hacking stuffs. ( Got into Google bugbounty Hall of fame ) 2. Docker and docker swarm 3. Product development and roadmap strategies via indiehackers podcast 4. Nodejs and MySQL to the core. 5. Bootstrapping ( building a product from scratch and being persistence in tough days )
A lot more about persistence in workplace + personal life.
(You didn't ask but I think Mongo is particularly terrible, and Redux is particularly good. RxJs is probably the weirdest thing on the list, and the hardest to debug. Frankly I think I'd prefer async/await or generators.)
A bit of a learning curve figuring out how to write playbooks for pip vs n vs apt-get, but all in all an outstanding time investment.
2. Xamarin Forms because my new job requires it
3. UX Design because I want to improve usability of my systems
4. Software Project Management because I want to move to management
These days I try to avoid learning new technologies. I focus mostly on improving what I already know. I only learn a technology when I want to use it and there will be a benefit for using it compared to what I am already know.
- A good bit of C++
- A bunch of really neat proprietary things dealing with large scale systems
- A lot about automated refactoring and syntax manipulation (python's AST and type system)
Technology wise this year was great.
- Learned a lot more about kubernetes (bare metal, gcloud and finally digital ocean, rancher 2.0)
- Improved my JS skills (react etc.), focused a lot more on architecture
- Improved my spring-boot skills and upgraded to Java 11
- founded a company with my partner and got a bit into after-effects (from the technical side, meaning distributed rendering, automation)
- Created a "home lab" setup and learned vmware ESXi
Missed machine learning will check that out next year :)
Happy Holidays <3
Truth Ledger uses React and Bootstrap for front-end and is "serverless" on IPFS. The user submits news article links which then have their meta-data uploaded to IPFS. If they're logged into MetaMask, it will record the IPFS hash of the data (as plaintext) to the Ethereum Testnet with an Ethereum contract.
I'd like to try out OrbitDB to make it more robust and skip some of the IPNS hash translation work. Eventually, with a series of smart contacts, my partner and I hope to expand the dApp to become a completely autonomous DAO (digital autonomous organization) for arbitrating truth. This would allow users to receive a truthiness score for the article link they submit.
Also had a lot of fun learning about wireless protocols and modulation. I followed some tutorials to build an antenna and intercept images from NOAA 15/18/19 weather satellites with a software-defined radio (SDR) dongle!
- Learned testcafe in great detail while writing a framework atop it
- Learned how to setup a CI pipeline in bamboo
- Became the team expert on jest/enzyme
It's funny as a developer I found writing tests to be my most dreaded part of the job, but now I'm focusing on it entirely it's a nice change.
Also on the side teaching myself Haskell but progress is slow
I also invested time in learning Symfony and React for a personal web project I've been developing. For the same reason, after working with Docker for multiple years, I finally started to use it with an orchestrator and I chose Docker Swarm for that.
- C++ due to studying Computer Science in University. So far I'm finding it to be quite enjoyable. The last class was on dynamic variables and pointers before that. Next semester I'll have intermediate C++ next semester.
- I've found I really enjoy math also. In high school (2008-2012), I thought I was terrible at it and managed to only get pre-calc under my belt. Once again I'm in pre-calc but falling in love with it. Got an A in pre-calc 1 and have pre-calc 2 also next semester. Really excited for calculus.
- While I've been fairly intermediate at PowerShell for a couple years now (developed scripts to automate highly repetitive tasks), I'm now learning Bash and the syntax is quite interesting.
- Studying once again for the VMware Certified Advanced Professional Data Center Deployment certification exam. Have sat for it twice and failed, hopefully the third time is the charm.
- Favorite tech that I've messed with this year is probably Ansible.
https://github.com/syegulalp/Akilang
There's a couple of included demos like Conway's Game Of Life.
Sorry it's Windows only for now! I'll add Linux support once it's all not quite so in flux.
I found these technologies and methods enormously beneficial to abstract thinking and producing good systems.
Leslie Lamport, creator of TLA+ (and LaTeX), put out a lot of content about this topic and I was lucky enough to stumble upon it.
* Made AI for my game sineline using rule based expert systems
* A remote file sync engine and CD software which deploys projects to digital ocean and configures clusters and stuff
* Made a GANS script that generates fictional art work based on other samples
I have coded some shaders before, for some uni projects but I didn't realize the opportunities that this field can offer.. until this year. It's not just about 3D graphics; it's about making programs to be executed on the GPU in a very intuitive way.
I plan on using OpenGL shaders in a project in progress that I will share here on hn.
My most fun project of the year was learning NLP and implementing a tokenizer for phrase identifier in Arabic, which I don't speak, but the sentence structure is similar enough to english that I pulled it off.
TPM2.0 is so fundamentally different than TPM1.2. I learned 1.2 first, before realizing that 2.0 was going to be required.
I still use and like Python (mostly with Django) and C on ESP32/AVR/STM32.
In 2019 I'm going to have a look to Elm 0.19.
Also started learning Elixir as part of Advent of Code 2018.
Been a blast and really enjoyed the challenge of building a monorepo that shared code between all the different platforms.
Plus we got our first customers for a web app!
Context: Got acquired by fb. So I learned Hack (PHP).
It was surprisingly not bad. It's really nice when someone who's an expert builds all the tooling for you. :)
My favorite tech is still React. I really enjoy typed Python, typed JS, and other formerly all dynamic languages that are gradually adopting type safety.
I would recommend learning Rx if you are into having less state in your application. It's a fun way to think.
I also learned React, React Native, and Angular 7.
Feels good to no longer be scared of the world's most popular language.
I had been aware of it in the periphery, but never “dug in” till this year. This was the year I helped to lead an autonomy competition at work, where using ROS was a key component.
Finally have st least a first order approximation of its strengths and weaknesses.
- Launched services built with Python
- Learned more about computer science principles including data structures and algorithms to clean up/speed up code
- Built social media apps that leveraged REST APIs and RSS
Back to Rails and PostgreSQL for me. Neither new nor exciting but it pays the bills.
- Kafka
- NodeJs
- React. It was a bit of steep learning curve for me as I’m mainly a backender but once I got the essential concepts it was really awesome)
- mongo (quite like it with NodeJs but not with go Lang. For anyone going to start with mongo I recommend using Robo GUI client)
Similarly, I had already worked on weekend projects with the bitcoin blockchain, this year I picked up on Lightning Networks and I built a library on top of it.
I also started working with Docker and Kubernetes more extensively this year.
OData - A standard for rest APIs.
Did some playing with .Net Core, but still not really satisfied that it's ready for serious prime time.
goal is to learn metalwork and machining skills to complement programming, electronics, embedded skills for prototyping gadgets.
(ps. it's been a slow process)
I got intrigued by it’s clean syntax and pure approach. Almost finished Haskell From First Prinicples. I like it a lot and I‘m looking forward to write a website in it.
More fortunately, linq. It’s the thing I miss most when I’m not using the .net platform.
On my own time I've been playing with Golang, Bigquery and Image Stacking.
Also dived into vuejs a little - it’s ok.
Finally NServiceBus is something I learned as part of my current .NET contract, it’s pretty decent.
Also trying out Rubymine w/ vim emulation to replace SpaceVim (which I found too heavy and unpredictable). First time not using (Neo)Vim in 8yrs.
Most of the time I dabble in stuff up to the point when I am fluent enough to solve problems for fun and profit. But its really rare that I can really say that I actually really learned a technology to great depth.
Not sure that I managed to do that this year.
AWS ecosystem
Hammer, Stihl saw, wiring a house
Also, Wardley Maps and writing.
- More about Python (and that I hate it more)
- SBT
- Akka HTTP
- Redshift (and optimization)
- Kafka and Kafka Streams (Dev and Ops for this)
- ADTs and more about implicits
I am an android developer too. Pursuing Blockchain Nanodegree from Udacity.
Apache Spark and Flink
Docker
C on UNIX
Tried to learn Qt for mobile but could never get it going
Python
My favourite is C on UNIX
- Haskell - Yesod - Nix - Postgres - SQL
Nothing new.
repick some java backend from long years ago
Cousrea's Andrew NG Machine Learning learned last for years...
wish to deeper in 2019
Wrote protoc plugins, etc
it's a treat.
- Kubernetes.
- Hadoop/Spark.
C++, Arduino, Electrical Engineering, and worked with a mechanical engineer on the design execution.
Here is the story, skip to the bottom if you want to see the youtube video-
Started this year working on a finance App, this one needed to be perfect. React Native, Laravel PHP mysql. The app is almost finished, and is worthy of a note in its own right. This 6 month project taught me more about programming than the last 9 years. In the process I started automating my Electrical Engineering job in python. Word got out, and I got head hunted by a stranger at work. They were looking for Embedded Systems, I applied, and was denied the position because I didn't have experience.
So I needed experience in Embedded Systems, and I've hated doing dishes. This was a problem that could teach me Embedded Systems and grow my Electrical Engineering skills(B.S. was in Chem engineering, M.S. Industrial Engineering). And it did.
Since there was nothing to copy from, I would spend 2-3 days researching EVERYTHING there was to know about resistors. Then when I knew which resistor I would need, I'd have to spend 2-3 days on capacitors. Since the HN thread might care about relevant details- Learned everything about stepper motors, ICs, I2Cs, controlling electricity, and voltage. Since I wanted to learn embedded systems, I didn't use delays, instead I used a state system with interrupts.
It took ~2 months start to finish.
Here is the video of the working prototype-
By sticking to the fundamentals, we need nothing from anyone, our software runs everywhere on everything, and it's smaller and faster--and simpler--than everything else.
Next goal...how to leverage React, Redux, Node, Framer to make millions while traveling.
Favorite tech of 2018...honestly, all of it. Look at how far our species has come in just a few centuries, a few millennia. Imagine what we can do by 2100, 3018.
My best decision of 2018. I have never been happier with my day-to-day work.
The theatrics of it all take me back to college. The amount of creative freedom you have to build narratives, characters and effects is just so much fun.
Highly recommend for any one who was involved in theater.
You can see what I have been building here: https://codetocanvas.com/