A microservice in Elixir that displays a mixed feed of liked and posted tweets from a specified account. Here is the source code.
It aggregates liked
and posted
tweets,
sorts the mix by date, takes first N, and renders them into Html to be displayed.
An example of the microservice's output that is a mix of four tweets from the author's Twitter account, is shown below on this page. A JQuery AJAX call integrates the microservice, see the browser's console for details.
Another representation of the mixed feed is in the LiveView backed website where the length of the feed can be set interactively.
Test Driven Development, Hexagonal Architecture, Heroku's Twelve-Factor App.
Elixir 1.9.x, Erlang 22, Phoenix 1.4.x, Phoenix LiveView, Mix, Git, VSCode, Coveralls (for the test coverage), Credo (for syntax analysis), Sobelow (for security static analysis), direnv (for environment variables management), Dialyzer, Distillery, Bash, Docker, TravisCI, Gigalixir (hosting).
Twitter API 2.0, Tesla (HTTP client), oauther (OAuth 2.0), joken (JSON Web tokens), corsica (Cross-Origin Resource Sharing headers), GenServer, OTP Supervisor, timex (Time calculations), mox (Mocks generation), knigge (Dependency injection)
In this backend application, I aggregated Twitter API endpoints authenticating with OAuth 2.0 and serve processed tweets in two ways. As an interactive Web-page, and, as of a microservice HTTPs endpoint. The endpoint expects a request to be authorized with a JWT token signed with a defined secret. The processed result data is cached. Two GenServers were used to keep the result data in memory and to refresh the cache on a set period appropriately. OTP Supervisor was used to make the cache GenServers survive unpredicted crashes. The outcome is a secure and highly available web-service with the average answer time of 142ms.
The application was deployed as a Distillery release within a Docker image locally, and publically on the Gigalixir platform.
Universal app for iPhone and iPad. Made it just for fun.
It’s like repeating timer app but for only one most important thing. In contrast to the native Timer app, it alarms with sound and then repeats the countdown automatically unless the Auto Stop time comes.
Clean Architecture, SOLID principles.
Objective-C, XCode, iOS 9.x-10.x SDK, CocoaPods, HockeyApp (for crash reporting), GoogleAnalytics, Unit Tests via Quick/Nimble.
Local Notifications, UserNotifications, Background Content Download, Background Execution, CoreSpotlight, MediaPlayer, AVFoundation, GCD, NSOperationQueue, NSURLSession, CallKit, CoreTelephony, StoreKit, State Restoration.
In this app I’ve implemented the Clean Architecture by Robert C. Martin. As consequence new features can be inserted faster, the code was covered with unit tests easily.
App for my client working in macOS 10.9-10.11.
This app records video and uploads it to Amazon AWS S3.
Model View Controller approach, SOLID principles.
Swift 2.3, XCode, OSX 10.11 SDK, CocoaPods, HockeyApp (for crash reporting), Unit Tests via Quick/Nimble.
AppKit, Alamofire, ObjectMapper, REST, JSON, AmazonS3RequestManager, AVFoundation, CoreMedia, GLKit, GCD, NSOperationQueue, Darwin level file reading, Custom Framework with UI controls.
This is a production app mostly written in Swift with small portions in Objective-C.
In this app I made video stream to be resized on the fly via OpenGL during recording. I’ve written the multipart file uploader to Amazon AWS S3. It uploads video file chunk by chunk during the recording. So at the end of the recording video is almost there.