Soon I’ll complete my first six months of working as a software developer. Here in Germany, that coincides with the legal trial period. Luckily, the transition from academia to my current job has been extremely smooth, due to a relaxed working atmosphere and particularly due a very scientifically oriented first task. Implementing an evolutionary strategy optimization procedure is something that is very much in the realm of possible Bachelor/Master thesis or a segment of a doctoral work for a physicist.
Overall, these first six months have been a good learning experience. Most of what I’ve had to learn can be categorized as “software engineering’, like dealing with logs, reliance, deployment, and testing.
I want to take the opportunity to list and comment a bit on the things I’ve learned, explored, and played with during this time. Implicitly in this list, is the fact that most of it applies in the context of Python since it’s the programming language that I know the best… and since part of my job is rather borderline with data science/analytics, having Pandas available has been a very good.
- Cassandra basics
- Jenkins base pipeline CI
- HTTP requests, including asynchronous ones
- Using decorators
- Do better logging
- Type and function annotations in Python
- Build a custom factory for Cassandra that returns a pandas
DataFrame
- Some extensive use of
pytest
including parametrization, fixtures, mocking - Selenium basics as a proof of concept to do end-to-end testing of our dashboard
- Using Docker
- Play with binary file formats (
arrow
,parquet
) sending them over a network - Handling config files using
ConfigParser
- Use click to create a CLI
- Built a
Flask
app - Appreciate Pycharm’s debugger
Most likely I’ve forgotten some minor things, but this is the bulk of it. In the future, I’ll try to write about some noteworthy elements of this list. Particularly the Flask based access to the cassandra database that returns a pandas dataframe as a parquet file, arrow stream, or pretty rendered HTML.
Going forwards, I’m highly interested in exploring how to improve testing with the hypothesis
library, but still need to find a good case use for it. Also, want to explore the field of statistical programming using pymc3
. Beyond that, hopefully I’ll start doing some stuff in Go soon.
Comments
comments powered by Disqus